#!/bin/bash

# 检查 logs 目录是否存在，如果不存在则创建
if [ ! -d "logs" ]; then
    mkdir logs
    if [ $? -ne 0 ]; then
        echo "Failed to create logs directory."
        exit 1
    fi
fi

SERVER_NAME="platform-admin.jar"
SERVER_PORT=19000
# 检查是否有 admin-api 的 Java 进程正在运行，同时排除 grep 进程
pid=$(ps -ef | grep "$SERVER_NAME" | grep -i java | grep -v grep | awk '{print $2}')

# 如果 pid 变量不为空，则至少有一个进程匹配
if [ -n "$pid" ]; then
    # 可能有多个进程匹配，但这里只取第一个 pid
    # 尝试优雅地终止进程
    kill $pid
    # 等待一段时间让进程优雅退出
    sleep 3
    # 如果进程仍在运行，则强制杀死
    if kill -0 $pid 2>/dev/null; then
        echo "Process $pid did not exit gracefully, forcing kill."
        kill -9 $pid
    fi
fi

# 使用 nohup 运行 run.sh 脚本，并将输出重定向到日志文件
nohup ./run.sh ${SERVER_NAME} ${SERVER_PORT} > ./logs/debug.log 2> ./logs/errors.txt < /dev/null &
echo "Server $SERVER_NAME started."